package com.pay.alipay.config;

import com.alipay.api.AlipayConstants;
import lombok.Getter;
import lombok.Setter;

/* *
 *类名：AlipayConfig
 *功能：基础配置类
 *详细：设置帐户有关信息及返回路径
 *版本：3.4
 *修改日期：2016-03-08
 *说明：
 *以下代码只是为了方便商户测试而提供的样例代码，商户可以根据自己网站的需要，按照技术文档编写,并非一定要使用该代码。
 *该代码仅供学习和研究支付宝接口使用，只是提供一个参考。
 */
@Getter
@Setter
public class AliPayConfig {

    private static final String DEFAULT_SERVICE = "create_direct_pay_by_user";

    private static final String DEFAULT_ORDER_QUERY_URL = "https://openapi.alipay.com/gateway.do";


//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    // 合作身份者ID，签约账号，以2088开头由16位纯数字组成的字符串，查看地址：https://b.alipay.com/order/pidAndKey.htm
    private String partner;

    // 收款支付宝账号，以2088开头由16位纯数字组成的字符串，一般情况下收款账号就是签约账号
    private String sellerId;

    private String appId;

    //开发平台应用对应签名算法的私钥,需要PKCS8格式，
    //RSA公私钥生成：https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.nBDxfy&treeId=58&articleId=103242&docType=1
    private String privateKey;

    //开放平台对应签名算法的支付宝公钥。
    private String aliPublicKey;

    private String format = AlipayConstants.FORMAT_JSON;

    // 签名算法
    private String signType = "RSA";

    //服务器异步通知页面路径  需http://格式的完整路径，不能加?id=123这类自定义参数，必须外网可以正常访问
    private String notifyUrl;

    // 页面跳转同步通知页面路径 需http://格式的完整路径，不能加?id=123这类自定义参数，必须外网可以正常访问
    private String returnUrl;

    // 调试用，创建TXT日志文件夹路径，见AlipayCore.java类中的logResult(String sWord)打印方法。
    private String logPath = "C:\\";

    // 字符编码格式 目前支持 gbk 或 utf-8
    private String inputCharset = "utf-8";

    // 支付类型 ，无需修改
    private String paymentType = "1";

    //交易超时时间为：10分钟
    private String itBPay = "10m";

    //使能支付渠道。
    private String enablePayMethod = "";//"directPay^bankPay";

    //禁止支付渠道。
    private String disablePayMethod = "";

    // 调用的接口名，无需修改
    private String service = DEFAULT_SERVICE;

    //订单支付状态查询接口地址。
    private String orderQueryUrl = DEFAULT_ORDER_QUERY_URL;

    //订单分账接口地址。
    private String orderSettleUrl = DEFAULT_ORDER_QUERY_URL;

//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

//↓↓↓↓↓↓↓↓↓↓ 请在这里配置防钓鱼信息，如果没开通防钓鱼功能，为空即可 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    //防钓鱼时间戳  若要使用请调用类文件submit中的query_timestamp函数
    private String antiPhishingKey = "";

    //客户端的IP地址 非局域网的外网IP地址，如：221.0.0.1
    private String externalInvokeIp = "";

//↑↑↑↑↑↑↑↑↑↑请在这里配置防钓鱼信息，如果没开通防钓鱼功能，为空即可 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

    private static AliPayConfig instance;

    private AliPayConfig() {
    }

    public synchronized static AliPayConfig getInstance() {
        if (instance == null) {
            instance = new AliPayConfig();
        }
        return instance;
    }

    public synchronized static AliPayConfig getNewInstance() {
        return new AliPayConfig();
    }

    public String getSellerId() {
        return partner;
    }

}

